//////////////////////////////////////////////////////////////////////////

#ifndef _TEXTSURFACE_H_
#include "textsurface.h"
#endif

//////////////////////////////////////////////////////////////////////////

#ifndef _FONTS_H_
#include "fonts.h"
#endif

#ifndef _THEME_H_
#include "theme.h"
#endif

#include <SDL\SDL.h>
#include <SDL\SDL_ttf.h>


//////////////////////////////////////////////////////////////////////////


GUI_TextSurface::GUI_TextSurface(GUI_Fonts::Font _font, GUI_Colors::Color _color, const std::string& _text) :
    m_Font (_font),
    m_Color (_color),
    m_Text (_text)
{
    if (m_Text.size()>0)
        m_Surface = TTF_RenderText_Blended(GUI_Theme::Font(m_Font), m_Text.c_str(), GUI_Theme::Color(m_Color));
    else
        m_Surface = 0;
}


//////////////////////////////////////////////////////////////////////////


const std::string& GUI_TextSurface::GetText()
{
    return m_Text;
}


//////////////////////////////////////////////////////////////////////////


void GUI_TextSurface::SetText(const std::string& _text)
{
    m_Text = _text;
    if (m_Text.size()>0)
        m_Surface = TTF_RenderText_Blended(GUI_Theme::Font(m_Font), m_Text.c_str(), GUI_Theme::Color(m_Color));
    else
        m_Surface = 0;
}


//////////////////////////////////////////////////////////////////////////


void GUI_TextSurface::Resize()
{
    SDL_FreeSurface(m_Surface);
    m_Surface = TTF_RenderText_Blended(GUI_Theme::Font(m_Font), m_Text.c_str(), GUI_Theme::Color(m_Color));
}


//////////////////////////////////////////////////////////////////////////


GUI_TextSurface::~GUI_TextSurface()
{

}


//////////////////////////////////////////////////////////////////////////
